﻿Public Class Assistant
    ' L'image de l'assistante (bon ok, y'avait pas de budget, on a pris ce qu'on avait... excusez sa tête...)
    ' L'assistante : Je n'ai absolument rien à voir avec cette idée 
    Dim Image As Image = CType(My.Resources.ResourceManager.GetObject("marine40"), Image)

    ' La fonte utilisée pour le dessin du texte
    Dim Font As New Font("Arial", 10)

    ' La position de l'assistant sur notre surface de dessin
    Private X As Integer
    Private Y As Integer

    ' Le texte à afficher
    Private Text As String = ""

    ' Le nombre d'intervalles écoulés depuis l'instanciation
    Public TickCount As Integer = 0

    ' Est-ce le premier clic sur la simulation
    Private PClic As Boolean = True

    ' Constructeur
    Sub New(X As Integer, Y As Integer)
        Me.X = X
        Me.Y = Y
    End Sub

    Public Sub Draw(ByRef Gfx As Graphics, Width As Integer)
        ' Si ça fait au moins deux secondes que l'assistant est instancié
        If TickCount > 20 Then
            ' On dessine l'assistante
            Gfx.DrawImage(Image, New Point(Width + X, Y))
            ' On récupère les dimensions du texte à afficher
            Dim StringSize = Gfx.MeasureString(Text, Font)
            ' Et on dessine le texte centré horizontalement et verticalement
            Gfx.DrawString(Text, Font, Brushes.Black, New Point(Width + X - StringSize.Width, Y + 45 - (StringSize.Height / 2)))
        End If
    End Sub

    Public Sub Tick()
        TickCount = TickCount + 1

        ' Anime l'assistant au démarrage
        If TickCount > 20 And TickCount < 59 Then
            ' On diminue la position horizontale jusqu'à ce que 6 secondes se soient écoulées depuis l'instanciation
            X = X - 10
        End If
    End Sub

    Public Sub Bienvenue()
        Text = "Bienvenue dans ProjetMicheline !" & vbLf & "Cliquez n'importe où pour créer une station"
    End Sub

    Public Sub PremierClic()
        If PClic Then
            Text = "Cliquez pour créer la prochaine station" & vbLf & "Ou maintenez le bouton gauche sur une station" & _
                   vbLf & "et glissez jusque l'endroit souhaité"
            PClic = False
        End If
    End Sub

    Public Sub Deplacer()
        Text = "Vous pouvez déplacer les stations au clic droit"
    End Sub

    Public Sub Gomme()
        Text = "Cliquez sur une station ou une jonction" & vbLf & "pour la supprimer définitivement"
    End Sub

    Public Sub EditerTrains()
        Text = "Vous pouvez éditer les trains en circulation" & vbLf & "et leur parcours en cliquant sur l'icône des trains"
    End Sub

    Public Sub CreerAiguillage()
        Text = "Pour créer un aiguillage cliquez sur une" & vbLf & "jonction, maintenez puis glissez"
    End Sub

    Public Sub CaracteristiqueStation()
        Text = "Faites Ctrl + clic gauche sur une station" & vbLf & "pour voir ses caractéristiques"
    End Sub

    Public Sub EditerSimulation()
        Text = "Pour modifier votre simulation cliquez sur 'Pause'"
    End Sub
End Class
